PowerShell-এ Switch Statement একটি শক্তিশালী কন্ট্রোল স্ট্রাকচার, যা একাধিক কন্ডিশন চেক করার জন্য ব্যবহার করা হয়। এটি সাধারণত একাধিক সম্ভাব্য মান পরীক্ষা করার জন্য if/else if থেকে বেশি কার্যকর এবং পরিস্কারভাবে কাজ করে। Switch স্টেটমেন্টটি খুব দ্রুত এবং দক্ষভাবে নির্বাচিত কন্ডিশনগুলোর মধ্যে মেলানো মান অনুসন্ধান করে।
এছাড়াও, PowerShell-এ কাস্টম কন্ডিশন ব্যবহার করে আপনি বিশেষ শর্ত (conditions) এবং লজিক্যাল এক্সপ্রেশন তৈরি করতে পারেন যা স্ক্রিপ্টের ফ্লো নিয়ন্ত্রণ করতে সাহায্য করে।
Switch Statement
PowerShell-এ Switch স্টেটমেন্ট সাধারণত একাধিক মানের মধ্যে মিল খোঁজার জন্য ব্যবহৃত হয়। এটি অনেকগুলো if/else স্টেটমেন্টের পরিবর্তে খুব কার্যকরভাবে কাজ করে, বিশেষত যখন একাধিক কন্ডিশন চেক করতে হয়।
Switch Statement এর সিনট্যাক্স:
switch ($variable) {
"value1" { # action for value1 }
"value2" { # action for value2 }
"value3" { # action for value3 }
default { # action if no match found }
}
উদাহরণ ১: Switch Statement ব্যবহার
$day = "Monday"
switch ($day) {
"Monday" { Write-Host "Start of the work week!" }
"Wednesday" { Write-Host "Midweek day." }
"Friday" { Write-Host "Weekend is almost here!" }
default { Write-Host "It's a regular day." }
}
এখানে, $day ভেরিয়েবলের মান অনুযায়ী ভিন্ন ভিন্ন আউটপুট দেখাবে। উদাহরণস্বরূপ, যদি $day এর মান "Monday" হয়, তবে আউটপুট হবে:
Start of the work week!
উদাহরণ ২: একাধিক কন্ডিশন চেক করা
$color = "Red"
switch ($color) {
"Red" { Write-Host "The color is Red." }
"Blue" { Write-Host "The color is Blue." }
"Green" { Write-Host "The color is Green." }
default { Write-Host "Unknown color." }
}
এখানে যদি $color এর মান "Red" হয়, তবে আউটপুট হবে:
The color is Red.
উদাহরণ ৩: কন্ডিশনাল চেকের জন্য -contains অপারেটর
$fruit = "Apple"
$fruits = @("Banana", "Apple", "Cherry")
switch ($fruit) {
{ $_ -in $fruits } { Write-Host "$fruit is in the list of fruits." }
default { Write-Host "$fruit is not in the list." }
}
এই উদাহরণে, $fruit যদি Apple হয়, তবে আউটপুট হবে:
Apple is in the list of fruits.
কাস্টম কন্ডিশন (Custom Conditions)
PowerShell-এ কাস্টম কন্ডিশন ব্যবহারের মাধ্যমে আপনি আরও জটিল শর্ত বা এক্সপ্রেশন তৈরি করতে পারেন। যেমন, আপনি if এবং switch স্টেটমেন্টে লজিক্যাল অপারেটর ব্যবহার করতে পারেন যেমন -eq, -ne, -gt, -lt, -and, -or, এবং -not।
১. Logical Operators (লজিক্যাল অপারেটর):
- -eq: সমান
- -ne: সমান নয়
- -gt: বড়
- -lt: ছোট
- -ge: বড় বা সমান
- -le: ছোট বা সমান
- -and: এবং
- -or: অথবা
- -not: নয়
উদাহরণ ৪: কাস্টম কন্ডিশন এবং লজিক্যাল অপারেটর ব্যবহার
$age = 25
$isStudent = $false
if ($age -gt 18 -and $isStudent -eq $false) {
Write-Host "You are an adult and not a student."
} elseif ($age -gt 18 -and $isStudent -eq $true) {
Write-Host "You are an adult and a student."
} else {
Write-Host "You are either a minor or a student."
}
এই স্ক্রিপ্টে, প্রথম শর্তটি চেক করবে যদি age ১৮ এর চেয়ে বড় এবং isStudent যদি false হয়, তখন আউটপুট হবে:
You are an adult and not a student.
উদাহরণ ৫: Multiple conditions using switch
$score = 85
switch ($score) {
{$_ -ge 90} { Write-Host "Grade A" }
{$_ -ge 75 -and $_ -lt 90} { Write-Host "Grade B" }
{$_ -ge 50 -and $_ -lt 75} { Write-Host "Grade C" }
default { Write-Host "Fail" }
}
এখানে $score এর মান অনুযায়ী গ্রেড নির্ধারণ করা হবে। যদি $score ৮৫ হয়, তাহলে আউটপুট হবে:
Grade B
উদাহরণ ৬: -like অপারেটর ব্যবহার
-like অপারেটরটি বিশেষভাবে স্ট্রিংয়ের মধ্যে প্যাটার্ন ম্যাচিংয়ের জন্য ব্যবহার করা হয়। এখানে ওয়াইল্ডকার্ড * ব্যবহার করে কোনো স্ট্রিংয়ের অংশ চেক করা যেতে পারে।
$fruit = "Mango"
switch ($fruit) {
"Apple" { Write-Host "Apple found!" }
"Banana" { Write-Host "Banana found!" }
"M*" { Write-Host "Fruit starting with M found!" }
default { Write-Host "Fruit not found!" }
}
এখানে, $fruit যদি "Mango" হয়, তাহলে আউটপুট হবে:
Fruit starting with M found!
সারাংশ
PowerShell-এ Switch Statement একটি শক্তিশালী কন্ট্রোল স্ট্রাকচার যা একাধিক কন্ডিশন চেক করার জন্য ব্যবহৃত হয় এবং এটি কোডের পারফরম্যান্স এবং স্পষ্টতা বাড়ায়। পাশাপাশি, কাস্টম কন্ডিশন ব্যবহার করে আপনি লজিক্যাল অপারেটর, বিশেষ শর্ত এবং প্যাটার্ন ম্যাচিংয়ের মাধ্যমে আরো জটিল শর্ত পরীক্ষা করতে পারেন, যা স্ক্রিপ্ট লেখার কাজকে আরও কার্যকরী ও নমনীয় করে তোলে।
Read more